歡迎來到《Git 起來!》系列的第三天!
前兩天我們聊了 git add 和 git commit
知道怎麼把檔案放進「購物車」,再按下「結帳鍵」存進歷史。
那麼問題來了:
在開發過程中,我怎麼知道現在「購物車」裡有什麼?
我怎麼查到之前到底「買過什麼」?
這就是 git status 和 git log 的任務。
它們就像是 Git 世界裡的 GPS 導航系統,幫你搞清楚自己「在哪裡」、「走過哪些路」。
git status:現在的座標想像你在逛網拍,購物車裡有什麼?:
git add)git add,準備 commit)這些狀況,git status 都會為你列出來。
幫助我們確認目前專案的狀態:
git status
常見輸出會包含:
🔎 範例:
On branch main
Changes not staged for commit:
modified: index.html
deleted: app.js
Changes to be committed:
new file: style.css
Untracked files:
notes.md
login.js
解讀:
On branch main
→ 目前在 main 分支。
Changes not staged for commit
→ index.html(修改)、app.js(刪除),但還沒 git add。
Changes to be committed
→ style.css(新檔案),已經被 git add,下次 commit 會記錄。
Untracked files
→ notes.md 是新檔,Git 沒追蹤,需要 git add 才會進入版本控制。
👉 小技巧:
git status -s:精簡輸出,適合老手快速掃描git log:走過的路徑如果 git status 是現在的座標,那 git log 就是歷史足跡。
就像打開購物紀錄,你可以回顧:之前到底買過什麼?
git log
會列出所有 commit,包含:
🔎 範例:
commit a3f1c9d8e2f4d1f6b7c2
Author: Sean <sean@example.com>
Date: Mon Sep 15 10:00 2025 +0800
feat: 新增首頁設計
commit b7e2d3c1a9f8d0e2c7f1
Author: Sean <sean@example.com>
Date: Sun Sep 14 22:30 2025 +0800
fix: 修正按鈕樣式
👉 小技巧:
git log --oneline:一行一個 commit,更簡潔git log --graph --oneline --decorate:圖形化展示分支,適合看分支狀態git status:導航告訴你「現在在哪裡」git log:導航幫你回放「剛剛是怎麼走過來的」這兩個指令就像 Google Maps 的「目前位置」+「行駛軌跡」。
沒有它們,你很容易迷路,甚至都搞不清楚自己在哪個分支。
搞混 git status 和 git log
→ git status 只能顯示當前狀態;要看歷史必須用 git log。
卡在 log 畫面出不來
→ git log 會進入分頁器(less),要按 q 才能退出。
不加參數就嫌 log 太長
→ 善用 --oneline 或 --graph,會讓輸出更直覺。
git add,試著用 git status 看差異。add 後再執行 git status,觀察結果不同。git log --oneline --graph 觀察分支歷史,試著解讀 commit 流程。今天我們學到:
git status 幫助我們了解當前狀態(購物車裡有什麼、還沒 add 的是哪些)git log 幫助我們回顧專案的歷史(之前結過哪些帳、版本變化)明天我們要進一步學 Day 4:git diff —— 看清楚改了什麼 🔍
讓你不再害怕「到底動了哪些東西?」